home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / gnome-doc-tool < prev    next >
Text File  |  2009-09-22  |  9KB  |  267 lines

  1. #!/bin/sh
  2. # gnome-doc-html - Convert documentation to HTML
  3. # gnome-doc-html.  Generated from gnome-doc-html.in by configure.
  4. # Copyright (C) 2006 Shaun McCance <shaunm@gnome.org>
  5. #
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # This program is distributed in the hope that it will be useful, but
  12. # WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14. # General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program; if not, write to the Free Software
  18. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  19. #
  20. # As a special exception to the GNU General Public License, if you
  21. # distribute this file as part of a program that contains a
  22. # configuration script generated by Autoconf, you may include it under
  23. # the same distribution terms that you use for the rest of that program.
  24.  
  25. progname=`echo "$0" | sed 's%^.*/%%'`
  26.  
  27. PROGRAM=gnome-doc-html
  28. PACKAGE=gnome-doc-utils
  29. VERSION=0.18.0
  30. prefix=/usr
  31. datarootdir=${prefix}/share
  32. datadir=${datarootdir}
  33. pkgdatadir=${datarootdir}/gnome-doc-utils
  34. xsltdir=${datarootdir}/xml/gnome/xslt
  35.  
  36. error() {
  37.     echo "$progname: $1" 1>&2;
  38.     exit 1;
  39. }
  40.  
  41. print_help() {
  42.     cat <<EOF
  43. Usage: $progname <COMMAND> [OPTIONS] FILE
  44. Process a documentation file.
  45.  
  46. COMMAND is one of:
  47.   html       convert the document to HTML
  48.   xhtml      convert the document to XHTML
  49.   help       display this help and exit
  50. EOF
  51. }
  52.  
  53. print_help_html() {
  54.     format="$1"
  55.     upformat=`echo $format | tr a-z A-Z`
  56.     cat <<EOF
  57. Usage: $progname $format [OPTIONS] FILE
  58. Convert FILE into $upformat.
  59.  
  60. Basic Output Control:
  61.   -c, --css-file=FILE             file to output CSS to
  62.   -d, --chunk-depth=INT           how deep sections should be chunked
  63.   -e, --extension=EXT             the extension to append to output files
  64.   -n, --no-figures                do not copy figures into the output directory
  65.   -o, --output=PATH               the file or directory to output to
  66.  
  67. Formatting Control:
  68.   --copy-graphics                 copy graphics into the output directory
  69.   --admon-graphics-path=PATH      the path to the admonition graphics
  70.   --admon-graphics-size=INT       the size of the admonition graphics
  71.   --classsynopsis-language=LANG   the default programming language to be used
  72.                                   for classsynopsis elements
  73.   --funcsynopsis-style=STYLE      the style to be used to render funcsynopsis
  74.                                   elements, either 'KR' or 'ANSI'
  75.  
  76. Miscellaneous:
  77.   -v, --verbose                   print all the commands executed
  78.   -V, --version                   print version information and exit
  79.   -h, --help                      display this help and exit
  80. EOF
  81. }
  82. echo_verbose() {
  83.     if [ "x$doc_verbose" = "x1" ]; then echo $1; fi
  84. }
  85. mkdir_p() {
  86.     __dir__='';
  87.     echo $1 | sed -e 's/\//\n/g' | while read d; do
  88.     __dir__="$__dir__$d/"
  89.     if [ ! -d "$__dir__" ]; then
  90.         echo_verbose "mkdir \"$__dir__\""
  91.         mkdir "$__dir__"
  92.     fi
  93.     done;
  94. }
  95.  
  96. DO_html() {
  97.     doc_format="$1"
  98.     shift
  99.     longopts='
  100.       -lcss-file:
  101.       -lchunk-depth:
  102.       -lextension:
  103.       -lno-figures
  104.       -loutput:
  105.       -lcopy-graphics
  106.       -ladmon-graphics-path:
  107.       -ladmon-graphics-size:
  108.       -lclasssynopsis-language:
  109.       -lfuncsynopsis-style:
  110.       -lverbose
  111.       -lversion
  112.       -lhelp
  113.     ';
  114.     options=`getopt -qn$progname $longopts -- c:d:e:o:nvVh "$@"`
  115.     if [ "$?" != "0" ]; then print_help_html $doc_format 1>&2; exit 1; fi
  116.     eval set -- "$options";
  117.     while [ "$1" != "--" ]; do
  118.     case "$1" in
  119.         -c | --css-file)
  120.         doc_css_file="$2";;
  121.         -d | --chunk-depth)
  122.         doc_chunk_depth="$2";;
  123.         -e | --extension)
  124.         doc_extension="$2";;
  125.         -n | --no-figures)
  126.         doc_no_figures="1";;
  127.         -o | --output)
  128.         doc_output="$2";;
  129.  
  130.         --copy-graphics)
  131.         doc_copy_graphics="1";;
  132.         --admon-graphics-path)
  133.         doc_admon_graphics_path="$2";;
  134.         --admon-graphics-size)
  135.         doc_admon_graphics_size="$2";;
  136.         --classsynopsis-language)
  137.         doc_classsynopsis_language="$2";;
  138.         --funcsynopsis-style)
  139.         doc_funcsynopsis_style="$2";;
  140.  
  141.         -v | --verbose)
  142.         doc_verbose=1;;
  143.  
  144.         -V | --version)
  145.         echo "$PROGRAM ($PACKAGE) $VERSION"
  146.         exit 0;;
  147.         -h | --help)
  148.         print_help_html $doc_format
  149.         exit 0;;
  150.         --)
  151.         print_help_html $doc_format 1>&2
  152.         exit 1;;
  153.     esac
  154.     shift
  155.     done
  156.     shift
  157.  
  158.     if [ "$#" != "1" ]; then print_help_html $doc_format 1>& 2; exit 1; fi;
  159.     doc_input="$1"
  160.     if [ ! -f "$doc_input" ]; then error "$doc_input: No such file"; fi
  161.     doc_indir=$( (cd $(dirname "$doc_input") && pwd) )
  162.     doc_infile=$(basename "$doc_input")
  163.     doc_inbase=$(basename "$doc_infile" ".xml")
  164.     if [ "$doc_inbase" = "$doc_infile" ]; then
  165.       doc_inbase=$(basename "$doc_infile" ".docbook")
  166.     fi;
  167.  
  168.     if [ "x$doc_output" = "x" ]; then
  169.     doc_outdir=`pwd`
  170.     if [ "x$doc_extension" = "x" ]; then doc_extension=".$doc_format"; fi
  171.     doc_outfile="${doc_inbase}${doc_extension}"
  172.     elif [ -d "$doc_output" -o $(echo "$doc_output" | sed -e 's/.*\/$/\//') = "/" ]; then
  173.     mkdir_p "$doc_output"
  174.     doc_outdir=`(cd "$doc_output" && pwd)`
  175.     if [ "x$doc_extension" = "x" ]; then doc_extension=".$doc_format"; fi
  176.     doc_outfile="${doc_inbase}${doc_extension}"
  177.     else
  178.     dir=`dirname "$doc_output"`
  179.     mkdir_p "$dir"
  180.     doc_outdir=`(cd "$dir" && pwd)`
  181.     doc_outfile=`basename "$doc_output"`
  182.     if [ "x$doc_extension" = "x" ]; then
  183.         doc_extension=`echo "$doc_outfile" | grep -o '\..*'`
  184.     fi;
  185.     fi;
  186.     doc_outbase=$(basename "$doc_outfile" "$doc_extension")
  187.  
  188.     params='--param db.chunk.chunk_top 0'
  189.     params="$params --stringparam db.chunk.basename \"$doc_outbase\""
  190.     params="$params --stringparam db.chunk.extension \"$doc_extension\""
  191.     if [ "x$doc_chunk_depth" != "x" ]; then
  192.     params="$params --param db.chunk.max_depth $doc_chunk_depth"
  193.     fi
  194.     if [ "x$doc_css_file" != "x" ]; then
  195.     params="$params --stringparam db2html.css.file \"$doc_css_file\""
  196.     fi
  197.     graphics=`xmllint --noent --xinclude "$doc_indir/$doc_infile" \
  198.       | xsltproc "$xsltdir/docbook/utils/graphics.xsl" -`;
  199.     if [ "x$doc_copy_graphics" = "x1" ]; then
  200.     for graphic in `echo $graphics | tr ' ' '\n' | grep '^admon-'`; do
  201.         param="theme.icon."`echo $graphic | sed -e 's/\.png$//' -e 's/-/./'`;
  202.         if [ "x$doc_admon_graphics_path" = "x" ]; then
  203.         cmd="cp \"$pkgdatadir/icons/hicolor/48x48/$graphic\" \"$doc_outdir/$graphic\""
  204.         echo_verbose "$cmd"
  205.         eval "$cmd"
  206.         params="$params --stringparam $param \"$graphic\""
  207.         elif [ -f "$doc_admon_graphics_path/$graphic" ] ; then
  208.         cmd="cp \"$doc_admon_graphics_path/$graphic\" \"$doc_outdir/$graphic\""
  209.         echo_verbose "$cmd"
  210.         eval "$cmd"
  211.         params="$params --stringparam $param \"$graphic\""
  212.         fi
  213.     done
  214.     fi
  215.     if [ "x$doc_copy_graphics" != "x1" -a "x$doc_admon_graphics_path" != "x" ]; then
  216.     params="$params --stringparam theme.icon.admon.path \"$doc_admon_graphics_path\""
  217.     fi
  218.     if [ "x$doc_admon_graphics_size" != "x" ]; then
  219.     params="$params --stringparam theme.icon.admon.size \"$doc_admon_graphics_size\""
  220.     fi
  221.     if [ "x$doc_classsynopsis_language" != "x" ]; then
  222.     params="$params --stringparam db2html.classsynopsis.language"
  223.     params="$params \"$doc_classsynopsis_language\""
  224.     fi
  225.     if [ "x$doc_funcsynopsis_style" != "x" ]; then
  226.     params="$params --stringparam db2html.funcsynopsis.style"
  227.     params="$params \"$doc_funcsynopsis_style\""
  228.     fi
  229.  
  230.     cmd="xmllint --noent --xinclude \"$doc_indir/$doc_infile\" |\
  231.       xsltproc $params -o \"$doc_outdir/$doc_outfile\" \"$xsltdir/docbook/html/db2$doc_format.xsl\" -"
  232.     echo_verbose "$cmd"
  233.     eval "$cmd"
  234.  
  235.     if [ "x$doc_no_figures" != "x1" -a "$doc_indir" != "$doc_outdir" ]; then
  236.     xmllint --noent --xinclude "$doc_indir/$doc_infile" \
  237.         | xsltproc "$xsltdir/docbook/utils/figures.xsl" - \
  238.         | while read fig; do
  239.         mkdir_p "$doc_outdir/"`dirname "$fig"`
  240.         cmd="cp \"$doc_indir/$fig\" \"$doc_outdir/$fig\""
  241.         echo_verbose "$cmd"
  242.         eval "$cmd"
  243.     done
  244.     fi
  245. }
  246.  
  247.  
  248. command="$1";
  249. if [ "x$command" = "x" ]; then
  250.     print_help 1>&2;
  251.     exit 1;
  252. fi;
  253. shift;
  254. if [ "$command" = "html" -o "$command" = "xhtml" ]; then
  255.     DO_html "$command" $@;
  256. elif [ "$command" = "-V" -o "$command" = "--version" ]; then
  257.     echo "$PROGRAM ($PACKAGE) $VERSION";
  258.     exit 0;
  259. elif [ "$command" = "help" ]; then
  260.     print_help;
  261.     exit 0;
  262. else
  263.     print_help 1>&2;
  264.     exit 1;
  265. fi;
  266.  
  267.